package top.lishuoboy.hibernate.validator.a2_1_5;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;

import javax.validation.constraints.NotNull;

/**
 * 租赁汽车
 * 这里的类RentalCar是 的子类Car并添加了属性rentalStation。如果验证了 的实例 RentalCar，则不仅会评估@NotNull的约束，还会评估来自父类的rentalStation约束。manufacturer
 * Car如果不是超类而是由 实现的接口，情况也是如此RentalCar。
 * 如果方法被重写，约束注释将被聚合。因此，如果RentalCar重写 getManufacturer()来自 的方法Car，则除了@NotNull来自超类的约束之外，还将评估重写方法中注释的任何约束。
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
@Accessors(chain = true)
public class RentalCar extends Car {

    /** 出租车站 */
    private String rentalStation;

    @NotNull
    public String getRentalStation() {
        return rentalStation;
    }


}